VisualHMI - 历史曲线控件

什么是历史曲线控件?

image-20231127135719016

历史曲线可以实现:

  1. 连续采样:连续采样将同一时刻,连续的N个寄存器绘制到同一条曲线上;
  2. 资料采样:资料采集将同一个寄存器的数据,不同时间的数据绘制成一条曲线显示。

曲线最大支持16个通道,且支持掉电存储、导出、翻页、清除、缩放等等等

本文档介绍历史曲线的常用的应用:

  1. 资料采样
  2. 连续采样

使用范围:VisualHMI - HMI&M系列

下载链接:VisualHMI - 历史曲线控件(点击下载)

1.属性说明

1.1.曲线数据

历史曲线控件的曲线数据的来源:可以选择“资料采集”、“连续地址”,属性如下所示:

  1. 资料采样

    image-20231128090522912

    • 连续地址:采集同一时刻连续寄存器的数据,并将数据绘制在同一曲线上,属性下所示:

      • 数据点数:采集连续寄存器的个数。范围1~40000;

      • 数据地址:采集连续寄存器的起始地址;

      • 数据类型:支持UINT16、INT16、UINT32、INT32、UINT64、INT64、FLOAT、DOUBLE;

      • 数值转换:实际的数据 = 传输的数据 * 缩放 + 偏移;

    image-20231128090628803

1.2.曲线设置

历史曲线控件的曲线设置属性如下所示:

image-20231128090728679

  1. 曲线粗细:支持1像素、2个像素;

  2. 曲线通道:最大支持16条曲线

    • 通道颜色:设备每个通道的颜色
  3. 控制地址:填入控制通道的寄存器地址

    • Addr+0:通道显示隐藏,设置隐藏/ 显示每一个通道的曲线,bit0~bit15对应通道1~通道15,为0显示,为1隐藏,默认显示;

      • Addr+1:翻页控制,设置历史曲线的翻页,Addr+1:。1-上一页(曲线移动方向);2-下一页;3-首页(最新数据);4-尾页(最旧数据);

      • Addr+2:读取翻页操作是否可行,BIT1表示 “上一页”、BIT2表示“下一页”、BIT3表示“首页”、“BIT4”表示尾页。若该位为1,表示翻页可以执行;若该位为0,表示翻页操作不可以执行

      • Addr+3~Addr+4:时间戳定位,UINT32,时间戳定位,可以搭配下拉菜单关联,当下拉选择对应的时间,滚动条会自动定位到对应的时间节点。精度,天为单位

      • Addr+5:时间宽度控制,X轴上,表示一屏显示的点数。如控件的大小宽度400,时间宽度控制为100,那么400/100,即4个像素显示描绘一个点,如果采集了101个点,则会显示滚动条,可拖动查看。

1.3.X轴(时间)

X轴方向相关的设置,属性如下所示

image-20231128090841735

  1. 时间宽度:一页的显示的采样点数,如100,添加到第101个数据,满屏。曲线会从左往右移动;

  2. 刻度数:X轴的刻度数;范围:2~10,一个刻度对应一个时间显示

  3. 显示刻度:可设置无、分割线或刻度线

1.4.Y轴(值)

Y轴方向相关的设置,属性如下所示:

image-20231128091010742

  1. 最大值:Y轴上的最大值,可以在LUA脚本动态修改,调用wgt_set_param(...) API实现;
  2. 最小值:Y轴上的最小值,可以在LUA脚本动态修改,调用wgt_set_param(...) API实现;
  3. 越界不显示:√或不选,当值大于最大值或最小值,该店参数可以不显示
  4. 刻度数:2~11
  5. 显示数值:显示Y轴刻度上的值
  6. 显示刻度:可设置无、分割线或刻度线

1.5.外观属性

历史曲线控的外观属性如下所示:

image-20231128091243965

  1. 字体:字库选择
  2. 字体大小:字号设置
  3. 文字颜色:字体颜色设置
  4. 显示边框:可设置曲线外围边框颜色
  5. 显示背景:可设置透明不显示或纯色背景
  6. 分割线颜色:若X、Y设置了显示刻度,可设置分割线的颜色
  7. 显示滚动条:√,当采样点数大于“时间宽度”,可显示滚动条拖动查看数据
  8. 显示触摸标识:√,勾选上,当用户触摸曲线控件,对应位置显示采样时间和值

2. 应用

2.1 历史曲线-资料采样

2.1.1 资料采样配置

资料采集配置,如下所示:

image-20231128092316354

  1. 描述信息:历史曲线;

  2. 采样模式:定时采样

  3. 记录条数:2000;

  4. 采样周期:100;

  5. 采样单位:毫秒;

  6. 数据地址:LW1010

    • 数据类型:UINT16

    • 数据个数:3

  7. 控制地址:LW1001

  8. 导出标题:

  9. 采样控制地址:√

    • 控制地址:LW1000

    • 启动模式OFF→ON

2.1.2.历史曲线控件配置

历史曲线控件配置如下所示:

image-20231128094737636

  1. 数据来源:资料采集,资料取样索引为“[0]历史数据”

  2. 通道数:为3。(资料采集→数据个数→3)

  3. 控制地址:0x1003,UINT16类型

    • 隐藏控制:√,地址为0x1003,UINT16类型

    • 翻页控制:√,地址为0x1004,UINT16类型

    • 允许翻页:地址为0x1005,UINT16,只读

    • 时间戳定位:√,地址为0x1006,UINT32类型

    • 时间宽度:√,地址为0x1008

  4. 显示滚动条:√

  5. 显示触摸标识:√,点击曲线控件,将显示对应点的时间、参数值

2.1.3.采样使能配置

添加2个位状态指示灯控件,关联LW1000地址,和资料采集配置的“采样控制地址:LW1000对应,配置如下所示:

  1. 读取地址:LW1000
  2. 切换开关:√
  3. 开关类型:设为ON(开始采集)/ 设为OFF(停止采集)

image-20231128094920740

【运行预览】

运行虚拟屏,点击开始采样,屏幕显示3条曲线,曲线从右往左移动,点击停止采样,曲线停止,如下所示:

Video_2023-11-28_095740

2.1.4.历史曲线-清除记录

添加一个字状态按钮,关联LW1001地址,和资料采集配置的“控制地址LW1001”对应,配置如下所示:

  1. 写入地址:LW1001
  2. 操作模式:写入常量
    • 常量值:85

image-20231128101008391

【运行预览】

运行虚拟屏,点击清除记录,曲线记录清空,如下所示:

Video_2023-11-28_101227

2.1.5.历史曲线-通道显示隐藏

添加3个位状态按钮,关联LW1003.0、LW1003.1、LW1003.2地址,和历史曲线控件配置的控制地址 LW1003对应,配置如下所示:

  1. 读取地址:LW1003.0/LW1003.1/LW1003.2
  2. 切换开关:√
  3. 开关类型:切换开关

image-20231128112807153

【运行预览】

运行虚拟屏,点击对应用到显示/隐藏,如下所示:

Video_2023-11-28_113659

2.1.6.历史曲线控件-通道翻页控制

添加4个字按钮控件,均关联LW1004地址,和曲线控件配置的“翻页控制 0x1004”对应,配置如下所示

  1. 写入地址:LW1004

  2. 操作模式:写入常量

    • 常量值:1/2/3/4
  3. 控制权限:√。显示隐藏,表示还有下一页、上一页操作

    • 条件控制:LW1005.1/LW1005.2

    • 比较:==

    • 值:1

image-20231128113152468

【运行预览】

运行虚拟屏,点击上一页、下一页、尾页、首页,滚动条和曲线的位置实时刷新,显示效果如下所示:

Video_2023-11-28_113844

2.1.7.历史曲线控件-X轴缩放

添加一个数值控件,关联地址LW1008,和曲线控件配置的“时间宽度”的地址对应,配置如下所示:

  1. 启用输入:√

  2. 读取地址:LW1008

image-20231128114314752

【运行预览】

运行虚拟屏,点击数值控件,输入200,一页显示200个采样点;输入50,一页显示50个采样点,实现X轴放大缩小效果。如下所示:

Video_2023-11-28_133522

2.1.8.历史曲线控件-Y轴缩放

Y轴缩放需要结合LUA设置Y轴的最大值、最小值。设置历史曲线控件的ID不为0,如下所示,设置为100

image-20231128133940384

添加2个数值控件,最小值、最大值分别关联地址为LWA000、LWA001,配置如下所示:

  1. 启用输入:√

  2. 读取地址:LWA000 / LWA001

image-20231128134259224

【LUA脚本】

LUA脚本设置:曲线控件的Y轴缩放,最小值、最大值在LUA脚本实现,代码如程序 1所示:

wgt_set_param(screen,control, param,value)

设置控件的属性接口

  1. screen: 画面 ID

  2. control:控件 ID

  3. param: 设置标识码

    • 0x31:表示曲线控件的 Y 轴最小值

    • 0x32:表示曲线控件的 Y 轴最大值

  4. value:数据内容

function on_update(slave,vtype,addr)
    if vtype == VT_LW
    then
        if addr == 0xA000
        then
            local _min = get_uint16(VT_LW, 0xA000)
            wgt_set_param(__page._hisgraph1, 100, 0x31, _min)
        elseif addr == 0xA001
        then
            local _max = get_uint16(VT_LW, 0xA001)
            wgt_set_param(__page._hisgraph1, 100, 0x32, _max)

        end
    end
end
【运行预览】

运行虚拟屏,点击数值控件,设置最大值为200,最小值为20,如下所示:

Video_2023-11-28_134650

2.2 历史曲线-连续采样

2.2.1.工程配置

历史曲线控件配置如下所示:

  1. 数据来源:连续采样

  2. 数据点数:为50。

  3. 数据地址:0x4000

  4. 数据类型:UINT16类型

  5. 通道数量:2

[!warning|tip:注意] 若数据地址为0x4000开始,数据点数为50,即是通道1、通道2对应的寄存器范围如下所示:

即是通道1由LW4000、LW4002、LW4004、...、LW405E、LW4060、LW4062共50个地址的寄存器连成一条曲线显示出来。

通道1 LW4000 LW4002 LW4004 ...... LW405E LW4060 LW4062
通道2 LW4001 LW4003 LW4005 ...... LW405F LW4061 LW4063
  1. 时间刻度:50,一屏显示50个参数

  2. 显示触摸标识:√,点击曲线控件,将显示对应点的时间、参数值

image-20231128140450200

2.2.2.运行预览

运行虚拟屏,在LUA脚本on_run里对寄存器0x4000~0x4063,100个寄存器赋值随机数,用来DEMO演示体验,进入“连续采集”画面,如下所示:

Video_2023-11-28_141546

Copyright ©Dacai all right reserved,powered by Gitbook该文件修订时间: 2024-03-14 15:29:46

results matching ""

    No results matching ""